2026-10-12T11:33:21.6982163Z ##[group]Run npm run test:deploy
2026-10-12T11:33:21.6982197Z [36;1mnpm run test:deploy[0m
2026-10-12T11:33:21.6982215Z shell: /usr/bin/bash -e {0}
2026-10-12T11:33:21.6982226Z env:
2026-10-12T11:33:21.6982236Z   CARGO_TERM_COLOR: never
2026-10-12T11:33:21.6982310Z   CLOUDFLARE_ACCOUNT_ID: 1e6f2cffa3f445920836e8ebe446bb58
2026-10-12T11:33:21.6982324Z   WRANGLER_SEND_METRICS: false
2026-10-12T11:33:21.6982330Z ##[endgroup]
2026-10-12T11:33:21.7942006Z 
2026-10-12T11:33:21.7950466Z > test:deploy
2026-10-12T11:33:21.7950495Z > node --test "scripts/deploy/*.test.mjs"
2026-10-12T11:33:21.7950504Z 
2026-10-12T11:33:22.8633412Z error: no matching package named `base64` found
2026-10-12T11:33:22.8633468Z location searched: crates.io index
2026-10-12T11:33:22.8633534Z required by package `g1t-api v0.1.0 (/home/runner/work/repo/apps/api)`
2026-10-12T11:33:22.8633627Z note: offline mode (via `--offline`) can sometimes cause surprising resolution failures
2026-10-12T11:33:22.8633671Z help: if this error is too confusing you may wish to retry without `--offline`
2026-10-12T11:33:23.4003397Z ✔ the manifest matches every wrangler config in the repository (25.224671ms)
2026-10-12T11:33:23.4003500Z ✔ every wrangler.jsonc is found, and only checked-in ones (67.87736ms)
2026-10-12T11:33:23.4003574Z ✔ problems are found: an unlisted config, a later-stage binding, a wrong database, an unnamed KV (23.131107ms)
2026-10-12T11:33:23.4003617Z ✔ stages follow bindings: nothing binds to a unit that ships after it (0.446391ms)
2026-10-12T11:33:23.4003697Z ✔ inside a stage, a Worker that does not exist yet goes before those bound to it (0.581241ms)
2026-10-12T11:33:23.4004491Z ✔ Rust workers build with the shared script and the same wasm-opt level (0.670881ms)
2026-10-12T11:33:23.4005024Z ✔ shared crates and packages are read from workspace metadata (0.258291ms)
2026-10-12T11:33:23.4014469Z ✔ the runner's image is built from the runner crate and what it uses, on the base its lock names (0.23493ms)
2026-10-12T11:33:23.4020072Z ✔ services/runner/base.json records the base its folder builds (7.762923ms)
2026-10-12T11:33:23.4025846Z ✔ an image's hash ignores line endings, and its tags say what they are (180.714121ms)
2026-10-12T11:33:23.4026995Z ✔ only the lockfile entries the runner is built from name its image (0.490931ms)
2026-10-12T11:33:23.4033720Z ✔ the runner's deploy config names its image by reference, beside its wrangler.jsonc (19.539202ms)
2026-10-12T11:33:23.4037456Z ✔ the registry is asked for an image's manifest, without Docker (0.660601ms)
2026-10-12T11:33:23.4038568Z ✔ a push counts only when it ends with a digest, and is tried again (0.531651ms)
2026-10-12T11:33:23.4119049Z ✔ a static Linux binary is told from a dynamic one (51.423823ms)
2026-10-12T11:33:23.4119137Z ﹣ path dependencies agree with Cargo's own resolved graph (277.616457ms) # cargo metadata could not resolve offline
2026-10-12T11:33:23.4119186Z ✔ every import that leaves a unit's folder is covered by its dependencies or inputs (125.244113ms)
2026-10-12T11:33:23.4119225Z ✔ a shared crate's change reaches every unit built from it, and no other (0.884741ms)
2026-10-12T11:33:23.4119262Z ✔ a shared package's change reaches what imports it (0.18016ms)
2026-10-12T11:33:23.4119296Z ✔ a crate's tests, benches and examples deploy nothing (0.868742ms)
2026-10-12T11:33:23.4119332Z ✔ a Rust file compiled only for tests is found from what declares it (1.134222ms)
2026-10-12T11:33:23.4119365Z ✔ this repository's test-only sources are read from git (611.803886ms)
2026-10-12T11:33:23.4119401Z ✔ decide: a change only to tests deploys nothing (1.194852ms)
2026-10-12T11:33:23.4119429Z ✔ own folders, declared inputs and root files (0.782831ms)
2026-10-12T11:33:23.4119461Z ✔ a Cargo.lock change reaches only crates that use what changed (0.427971ms)
2026-10-12T11:33:23.4119493Z ✔ a package-lock change reaches through workspace links (0.48063ms)
2026-10-12T11:33:23.4119523Z ✔ decide: changed units deploy, others wait, unknown ones deploy (0.23791ms)
2026-10-12T11:33:23.4119557Z ✔ decide: --force deploys unchanged units; a commit missing from history deploys (0.12738ms)
2026-10-12T11:33:23.4119781Z ✔ decide: Cargo.lock counts only where it reaches (0.425971ms)
2026-10-12T11:33:23.4119816Z ✔ decide: the runner's image rebuilds only when what it is built from changed (0.29318ms)
2026-10-12T11:33:23.4119851Z ✔ the plan as data: migrations, and each stage's units in jobs that share a build (1.028462ms)
2026-10-12T11:33:23.4119883Z ✔ units are picked by short name, folder or Worker name (0.31998ms)
2026-10-12T11:33:23.4119912Z ✔ a CI job installs only what its units need (1.228952ms)
2026-10-12T11:33:23.4119942Z ✔ a deploy is annotated with its commit, and read back (0.18753ms)
2026-10-12T11:33:23.4119975Z ✔ the live commit: the live version's, looking through secret changes (0.26321ms)
2026-10-12T11:33:23.4120009Z ✔ Wrangler's output: pending migrations and the version a deploy made (0.283211ms)
2026-10-12T11:33:23.4120041Z ✔ the API's answers: the live commit as Wrangler's would give it (0.960282ms)
2026-10-12T11:33:23.8971836Z ✔ the API's answers: a Worker never deployed, and a refusal, never throw (502.714141ms)
2026-10-12T11:33:23.8976470Z ✔ the API is used only with the token Wrangler would be given (0.370741ms)
2026-10-12T11:33:23.8982456Z ✔ pending migrations: the folder's files less the names in d1_migrations (1.722573ms)
2026-10-12T11:33:23.9180782Z ✔ the pool runs everything, no more than its limit at once (14.966934ms)
2026-10-12T11:33:23.9185548Z ✔ self-hosting builds every Rust service the manifest says it runs (0.385801ms)
2026-10-12T11:33:23.9190110Z ✔ the self-hosting architecture page names every unit (0.19318ms)
2026-10-12T11:33:23.9203304Z ✔ resolveStack works on a manifest with no workspace crates or packages (2.884825ms)
2026-10-12T11:33:23.9203388Z ✔ decide: a commit older than what runs is never deployed by accident, even forced; --rollback means it (0.17458ms)
2026-10-12T11:33:23.9203437Z ✔ a deploy by hand reports to the repository on g1t, and a workflow's does not (1.240002ms)
2026-10-12T11:33:24.0276147Z ✔ webhooks: the hourly purge deletes old deliveries by time (1.971014ms)
2026-10-12T11:33:24.0279378Z ✔ billing: this month's users are read from an index, not the ledger (37.0482ms)
2026-10-12T11:33:24.0284828Z ✔ events: a repository's events of one type, newest first, page by page (2.160174ms)
2026-10-12T11:33:24.0299369Z ✔ actions: a self-hosted runner's poll finds queued jobs by namespace, whatever its case (8.526513ms)
2026-10-12T11:33:24.0299599Z ✔ chat: a channel's messages and a thread's replies, newest first, page by page (1.425603ms)
2026-10-12T11:33:24.0299792Z ✔ chat: the sidebar's unread messages are read from each channel's index, after the last read (2.322844ms)
2026-10-12T11:33:24.0302355Z ✔ chat: a page's reactions are read by message, and a workspace's emoji by name (1.274553ms)
2026-10-12T11:33:24.0880970Z scheduler: g1t-webhooks (* * * * *) is still running from the last time; skipped
2026-10-12T11:33:24.1672611Z scheduler: g1t-webhooks (* * * * *): 200 {"outcome":"exception"}
2026-10-12T11:33:24.1710165Z ✔ fields read numbers, ranges, lists and steps (1.287862ms)
2026-10-12T11:33:24.1729668Z ✔ the services' crons match when hosted g1t's would fire (1.347102ms)
2026-10-12T11:33:24.1735242Z ✔ what is due is each matching cron of each service (0.34575ms)
2026-10-12T11:33:24.1749364Z ✔ a run asks Wrangler for the handler, and a slow one is not doubled (80.260809ms)
2026-10-12T11:33:24.3123656Z ✔ a deploy is announced to status.g1t.sh with the token, and without one nothing is sent (29.334367ms)
2026-10-12T11:33:24.3652360Z ✔ an announcement that fails is a warning, never a failed deploy (0.569441ms)
2026-10-12T11:33:24.3658412Z ✔ the stages run inside the window: started before, finished after, even when they throw; a dry run says nothing (0.728041ms)
2026-10-12T11:33:24.3663647Z ✔ deploy.mjs announces every deploy, and the workflow passes it the token (0.37961ms)
2026-10-12T11:33:24.3764000Z ℹ tests 61
2026-10-12T11:33:24.3765162Z ℹ suites 0
2026-10-12T11:33:24.3765319Z ℹ pass 60
2026-10-12T11:33:24.3765470Z ℹ fail 0
2026-10-12T11:33:24.3765589Z ℹ cancelled 0
2026-10-12T11:33:24.3765706Z ℹ skipped 1
2026-10-12T11:33:24.3765822Z ℹ todo 0
2026-10-12T11:33:24.3768116Z ℹ duration_ms 2552.038995
